package com.cn.wanxi.service.impl;

import com.cn.wanxi.dao.CompanyDao;
import com.cn.wanxi.model.CompanyModel;
import com.cn.wanxi.service.CompanyService;
import com.cn.wanxi.util.IO;
import com.cn.wanxi.util.Path;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class CompanyServiceImpl implements CompanyService {


    /**
     * 第三阶段：数据来源于iO流：记事本里面
     * 首先需要一个记事本
     * 记事本应该在硬盘里面有一个地址：有一个文件夹去装记事本
     * 所以需要创建一个文件夹
     * 记事本里面需要数据---所以需要对记事本进行操作（写入数据）
     * 需要对记事本进行读取数据
     * 将读取的数据封装到CompanyModel里面
     * 归纳：创建记事本--写入数据--读取数据--封装数据
     * 如果这几件事情相互之间不是强关联，则需要创建不同的方法
     * 自己的事情自己做，不要多管闲事---面向对象的一个特点（封装）
     *
     * @return
     */
    @Override
    public CompanyModel getCompanyModel() {

//        String filePath = "D:\\wanxi\\step-3\\canyin03-0301\\web/note";
//        String fileName = "company.txt";
//        File file = IO.createNote(filePath, fileName);


//        recursion(dir);
//        File[] files = dir.listFiles();
//        for (int i = 0; i < files.length; i++) {
//            System.out.println(files[i]);
//            if (files[i].isDirectory()) {
//                File dira = new File(files[i].toString());//文件夹
//                File[] filesa = dira.listFiles();
//                for (int j = 0; j < filesa.length; j++) {
//                    System.out.println(filesa[i]);
//                }
//            }
//        }
//        递归
//        if (!dir.exists()) {
//            dir.mkdirs();
//        }

//        以后写if else的时候尽量避免使用else
//        System.out.println(dir.exists());
//        mkdir和mkdirs之间的区别？
//        dir.mkdir();//如果目录上面还有其他不存在的目录，则创建失败
//        dir.mkdirs();//无论有多少个不存在的目录，直接创建
//        dir.delete();//只能删除空文件
//        代码创建文件--需要一个文件名
//        String fileName = "aa.txt";
//        异常：什么时候地方出现异常，什么地方捕获异常
//        File file = new File(dir, fileName);
//        try {
//            创建文件
//            boolean succ = file.createNewFile();
//
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        System.out.println(11);


//        2.写入数据
        setWriteData(Path.COMPANY_NAME.getName());

//        3.读取数据
        String result = IO.readNote();
//        4.封装数据
//        CompanyModel companyModel = setCompanyModel();
//        CompanyDao companyDao = new CompanyDao();
//        companyModel.setLogo(companyDao.logo);
//        companyModel.setPhone(companyDao.phone);
//        companyModel.setNet(companyDao.net);
//        companyModel.setEmail(companyDao.email);
//        companyModel.setAddress(companyDao.address);
//        companyModel.setLinePhone(companyDao.linePhone);
//        companyModel.setVersion(companyDao.version);
        return setCompanyModel(result);
    }

    private void setWriteData(String fileName) {
        List<String> list = new ArrayList<>();
        CompanyDao companyDao = new CompanyDao();
        list.add(companyDao.logo);
        list.add(companyDao.phone);
        list.add(companyDao.net);
        list.add(companyDao.email);
        list.add(companyDao.address);
        list.add(companyDao.linePhone);
        list.add(companyDao.version);
        IO.writeNote(fileName, list);
    }

    private CompanyModel setCompanyModel(String result) {
        String[] resutls = result.split(Path.SPLIT.getName());
//        增强for循环
//        java jdk 新特性 5.0
//        java jdk 8 的新特性
//        for (String aa : resutls
//        ) {
//            System.out.println(aa);
//        }
        CompanyModel companyModel = new CompanyModel();

        companyModel.setLogo(resutls[0]);
        companyModel.setPhone(resutls[1]);
        companyModel.setNet(resutls[2]);
        companyModel.setEmail(resutls[3]);
        companyModel.setAddress(resutls[4]);
        companyModel.setLinePhone(resutls[6]);
        companyModel.setVersion(resutls[5]);
        return companyModel;
    }


    public static void main(String[] args) {
        new CompanyServiceImpl().getCompanyModel();
    }
}
